home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 11 - 1995 / 11.04 Apr 95 / TreeAppƒ / Eric's C++ Libraries / Interface Classes / CPPWindow.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-04  |  3.0 KB  |  106 lines  |  [TEXT/KAHL]

  1. /***************************************************** IMPLEMENTATION
  2.     DATE:    9/20/93
  3.     AUTHOR: Eric R. Rosé
  4.  
  5.     CLASS:  CPPWindow
  6.     
  7.     SUPERCLASS: CPPObjectList
  8.     
  9.         This C++ class manages a Macintosh window; it is subclassed
  10.         from an object list so that it can keep track of all of the
  11.         objects within the window
  12.         
  13.     
  14. ********************************************************************/
  15.  
  16. #pragma once
  17.  
  18. #include <CPPObjectList.h>
  19.  
  20. class CPPWindowManager;
  21. class CPPVisualObject;
  22.  
  23. class CPPWindow : public CPPObjectList{
  24.         friend    class CPPWindowManager;
  25.  
  26. public:
  27.     Boolean    modalDone;
  28.     Boolean    modalResult;    // TRUE if OK, FALSE if Cancel
  29.  
  30.             CPPWindow (CPPWindowManager *theManager,
  31.                        Rect *bounds, StringPtr title, Boolean isVisible,
  32.                        short windowKind, Boolean hasGoAway, short RefCon,
  33.                        Boolean isModal = FALSE, Boolean isColor = TRUE,
  34.                        short windowFont = geneva, short windowSize = 9);
  35.             CPPWindow (CPPWindowManager *theManager, short ResID,
  36.                        Boolean isModal = FALSE,
  37.                        Boolean isColor = TRUE, short windowFont = geneva, 
  38.                        short windowSize = 9);
  39.             ~CPPWindow (void);
  40.             
  41.     virtual    char     *ClassName (void);
  42.     virtual    Boolean    Member (char *className);
  43.  
  44.     virtual    Boolean    DoCommand (short commandID);
  45.  
  46.     void    DoModalWindow (void);
  47.     void    EndModalWindow (Boolean endResult);
  48.     
  49.     void    Show (Boolean doShowWindow);
  50.     Boolean    Do (EventRecord *theEvent);
  51.     void    DoIdle (void);
  52.     void    Update (EventRecord *theEvent);
  53.     void    Close (void);
  54.     void    Open (void);
  55.     WindowPtr    GetWindow (void);
  56.     
  57.     CPPVisualObject     *GetTarget (void);
  58.     void    MakeTarget (CPPVisualObject *theObject);
  59.     Boolean    MakeNextTarget (void);
  60.     Boolean    MakePreviousTarget (void);
  61.  
  62.     Boolean IsColorWindow (void);
  63.     Boolean    IsModalWindow (void);
  64.     Boolean    WindowVisible (void);
  65.     Boolean    WindowActive (void);
  66.  
  67.     void    StartManagingObject (CPPVisualObject *theObject);
  68.     void    StopManagingObject (CPPVisualObject *theObject);
  69.     virtual    void    RefreshItemStates (void);
  70.     
  71.     void    SetMinMaxSize (short minWidth, short minHeight,
  72.                             short maxWidth, short maxHeight);
  73.     void    SetZoomedOutSize (short maxWidth, short maxHeight);
  74.     virtual    void    DoUserAutoScroll (void);
  75.     
  76. protected:
  77.     WindowPtr    theWindow;
  78.     Boolean    WisVisible;
  79.     Boolean    WisActive;
  80.     CPPWindowManager    *ourManager;
  81.     CPPVisualObject        *currentTarget;
  82.     
  83.     virtual    void    Activate (void);
  84.     virtual    void    Deactivate (void);
  85.     virtual void    DoUserClick (EventRecord *theEvent);
  86.     virtual void    DoUserUpdate (void);
  87.     virtual void    DoUserIdle (void);
  88.     virtual Boolean    DoUserKey (EventRecord *theEvent);
  89.     virtual    void    DoUserChangeSize (short newWidth, short newHeight);
  90.     
  91. private:
  92.     Boolean    isCWindow;
  93.     Boolean isModalWindow;
  94.     short    minWidth, minHeight,
  95.             maxWidth, maxHeight;
  96.             
  97.     void    MakeCPPWindow (CPPWindowManager *theManager,
  98.                            short windowFont, short windowSize);
  99.     void    DoContentClick (EventRecord *theEvent);
  100.     void    DoDragClick (EventRecord *theEvent);
  101.     void    DoZoomClick (EventRecord *theEvent, short thePart);
  102.     void    DoGoAwayClick (EventRecord *theEvent);
  103.     void    DoGrowClick (EventRecord *theEvent);
  104.     Boolean    DoClick (EventRecord *theEvent);
  105. };
  106.